Lookerで誕生日➡︎年齢➡︎世代別グラフの順番で可視化する!
顧客情報のテーブルで誕生日のカラムはあるが年齢がない。
どんくらいの世代が顧客にいるのか確認したい!
というビッグデータを扱っているマーケターなら誰もが一度は考えたことがありそうなことを、今回Lookerでやってみようと思います。
今回の記事は以下の方にご満足いただける内容かと自負しております。
- 誕生日はわかるが現時点の年齢がわからない
- 10代、20代など世代別の数値をグラフに可視化したい
- 國崎のファンである
そんなわけで早速誕生日からの年齢、世代別グラフの可視化やっていきましょう。
まずは誕生日から年齢を出す
今回テーブルにあるデータですが以下のように各顧客の誕生日を把握できるカラムはあります。
(データはサンプルです)
まずはこちらの誕生日から年齢を算出する記述をviewに書き込みます。
以下のbirthdayというdimension_gropuの記述がある下にageというdimensionを書きます。
dimension_group: birthday {
type: time
timeframes: [
raw,
date,
week,
month,
quarter,
year
]
convert_tz: no
datatype: date
sql: ${TABLE}.birthday ;;
}
dimension: age {
type: number
sql: date_diff(current_date,${birthday_date},year) ;;
}
Exploreでデータを見ると上の記述を書くことにより現在の日付から誕生日を逆算して書き出し日時点の年齢が抽出されます。
年齢から世代別データを出しグラフ化する
View内に記述したageのdimension下に新たに世代別のdimensionを追加します。
10代刻みで世代データを取りたい場合は以下のように記述します。
dimension: age_tier {
type: tier
tiers: [0, 10, 20, 30, 40, 50, 60, 70, 80]
sql: ${age} ;;
style: integer
}
Exploreでデータを見る際に顧客のカウントを取るdimensionをカウント式で抽出するようにします。
今回の場合はnameの項目をカウントで取ります。
(集計➡︎個別のカウント)
上ので追加した記述のage_tierとnameの個別のカウントを選択して実行するとご覧のように10代刻みの データが表示されます。
今回の場合だとNULLデータや該当がない世代のデータがあるので以下のようにフィルターをかけます。
該当するデータが絞れたところでビジュアリゼーションでグラフを可視化します。
▼棒グラフ
▼円グラフ
実数ベースで世代間の比較をしたい時は棒グラフ、全体の内訳シェアをざっくり把握したい時は円グラフというような使い分けがおすすめです。
まとめ
誕生日から年齢を抽出し、世代別のデータグラフまで出来ました!
やり方をまとめると、
- 年齢のdimensionを現時点の日付から逆算して出す記述をViewに書く。
- 抽出された年齢をもとにdimensionにtiersの記述を書いて10代刻みの抽出をする。
- 可視化したグラフで不要な項目はフィルターで除外する。
の流れになります。
誕生日データしかなくて困っている方はこちらのやり方を参考にしてみてください。